import Vue from 'vue'
import App from './App.vue'
// import {
// 	Button,
// 	Container,
// 	Header,
// 	Aside,
// 	Main,
// 	Menu,
// 	Submenu,
// 	MenuItemGroup,
// 	MenuItem,
// 	Dropdown,
// 	DropdownMenu,
// 	DropdownItem,
// 	Row,
// 	Card,
// 	Col,
// 	Table,
// 	TableColumn,
// 	Breadcrumb,
// 	BreadcrumbItem,
// 	Tag,
// 	Form,
// 	FormItem,
// 	Input,
// 	Select,
// 	Switch,
// 	Option,
// 	DatePicker,
// 	Dialog,
// 	Pagination,
// 	MessageBox,
// 	Message,
// } from 'element-ui'
import ElementUI from 'element-ui'
import { MessageBox } from 'element-ui'
import { Message } from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

import router from '../router/index.js'
import store from './store'
import http from 'axios'
import '../api/mock.js'

Vue.config.productionTip = false
Vue.use(ElementUI)
// Vue.use(MessageBox)
// Vue.use(Message)
//#region
// Vue.use(Button)
// Vue.use(Container)
// Vue.use(Header)
// Vue.use(Aside)
// Vue.use(Main)
// Vue.use(Menu)
// Vue.use(Submenu)
// Vue.use(MenuItem)
// Vue.use(MenuItemGroup)
// Vue.use(Dropdown)
// Vue.use(DropdownMenu)
// Vue.use(DropdownItem)
// Vue.use(Row)
// Vue.use(Card)
// Vue.use(Col)
// Vue.use(Table)
// Vue.use(TableColumn)
// Vue.use(Breadcrumb)
// Vue.use(BreadcrumbItem)
// Vue.use(Tag)
// Vue.use(Form)
// Vue.use(FormItem)
// Vue.use(Input)
// Vue.use(Select)
// Vue.use(Switch)
// Vue.use(Option)
// Vue.use(DatePicker)
// Vue.use(Dialog)
// Vue.use(Pagination)
// Vue.use(MessageBox);
// Vue.use(Message);
//#endregion

Vue.prototype.$http = http
Vue.prototype.$confirm = MessageBox.confirm
Vue.prototype.$message = Message

router.beforeEach((to, from, next) => {
	store.commit('getToken')
	const token = store.state.user.token
	if (!token && to.name !== 'login') {
		next({ name: 'login' })
	} else if (token && to.name === 'login') {
		next({ path: '/home' })
	} else {
		next()
	}
})

new Vue({
	router,
	store,
	render: (h) => h(App),
	created() {
		this.$store.commit('addMenu', this.$router)
	},
}).$mount('#app')
